package model

// Course 课程模型
type Course struct {
	Base
	CourseID     string            `gorm:"size:20;uniqueIndex;not null" json:"course_id"` // 课程编号
	Name         string            `gorm:"size:100;not null" json:"name"`                // 课程名称
	Description  string            `gorm:"size:500" json:"description"`                   // 课程描述
	Credits      float64           `gorm:"not null" json:"credits"`                      // 学分
	Capacity     int               `gorm:"not null" json:"capacity"`                     // 课程容量
	Enrolled     int               `gorm:"not null;default:0" json:"enrolled"`           // 已选人数
	TeacherID    uint              `json:"teacher_id"`                                    // 教师ID
	Teacher      User              `gorm:"foreignKey:TeacherID" json:"teacher,omitempty"` // 教师信息
	Selections   []CourseSelection `gorm:"foreignKey:CourseID" json:"selections,omitempty"`
	Grades       []Grade           `gorm:"foreignKey:CourseID" json:"grades,omitempty"`
	Category     string            `gorm:"size:50" json:"category"`      // 课程类别（必修/选修）
	Semester     string            `gorm:"size:20" json:"semester"`      // 学期
	StartDate    string            `gorm:"size:20" json:"start_date"`   // 开始日期
	Status       string            `gorm:"size:20" json:"status"`        // 课程状态（进行中/已结束）
}